In a search engine, a crawler aggregates pages from the Internet and ensures that these pages are searchable. The pages retrieved by the crawler are indexed by an indexer. For example, each web page may be broken down into words and respective locations of each word on the page. The pages are then indexed by the words and their respective locations. A user may send a search query to a dispatcher. The dispatcher may forward the query to search nodes. The search nodes search respective parts of the index and return search results along with a document identifier. The dispatcher merges the received results to produce a final result set displayed to a user sorted by ranking scores based on a ranking function. Users may modify web pages in an attempt to have their page appear higher in a result set for particular queries.